package gamebackend;
import framework.Color;
import generators.BasicBlockGenerator;
import generators.BlockRule;
import generators.EmbiggenGenerator;
import generators.HorizontalStreakGenerator;
import generators.PipeGenerator;
import generators.ScaredGenerator;
import generators.SquareGenerator;
import generators.VerticalScaredGenerator;
import generators.VerticalStreakGenerator;
import gui.BlockStyle;

import java.util.Random;



public class TestBiome extends GameSession.Biome {
	public static final int CHANGE_LENGTH = 1000;
	private static final int EASY_WIDTH = 30;
	private static final int HARD_WIDTH = 7;
	
	private double my_distanceToChange;
	private StutterFlier my_easyStutter;
	private StutterFlier my_hardStutter;
	public TestBiome(GameSession the_session,
			int the_tier, Random the_random, double the_length) {
		the_session.super(the_session, the_tier, the_random, the_length);
		addEasyPath(new FlightPath(Block.PRIMARY_PATH, getEasyPath(), EASY_WIDTH), getLength());
		addHardPath(new FlightPath(Block.SECONDARY_PATH, getHardPath(), HARD_WIDTH + 6 * (2 - getTier())), getLength());
//		addGenerator(new BasicBlockGenerator(new Block(BlockStyle.THORN, Color.GRAY), Block.EMPTY_BLOCK, the_random, 1), the_length);
		final Block block = new Block(BlockStyle.ASTEROID, new Color(230, 210, 130));
		addGenerator(new BasicBlockGenerator(block, Block.EMPTY_BLOCK, getRandom(), 1), getLength());
		
		
		
		my_hardStutter = new StutterFlier(getHardPath().getShipFlier(),getWidth() / 7);
		MultiFlier multi = new MultiFlier();
		setFlier(multi);
		final double width = getWidth() * .9 / 4;
		
		multi.add(new RestlessFlier(
				
				my_hardStutter,
				getRandom(), width, getWidth(), 0, getWidth()
			));
		
//		final DirectFlier direct =new DirectFlier(new TogetherFlier(getHardPath().getShipFlier(), getEasyPath().getShipFlier(), getWidth() / 8));
//		direct.setTarget(50);
//		multi.add(direct);
		//multi.add(new RestlessFlier(new StutterFlier(new StutterFlier(getEasyPath().getShipFlier(), getWidth() / 6), getWidth() / 4), getRandom(), 0, getWidth()));
		//multi.add(new RestlessFlier(getHardPath().getShipFlier(), getRandom(), 0, getWidth()));
	}
	@Override
	public void step(final double the_yChange) {
		super.step(the_yChange);
		
	}
	
	
		
			
		
		
	
		
		
				
	
}